package com.mym;

import java.io.File;

/**
 * @author miao
 * @version 1.0
 * @date 2025/4/18 14:29
 * @description
 */
public class Test4 {

    /**
     * 递归方法，用于遍历目录并打印树形结构
     *
     * @param directory 要遍历的目录
     * @param indent    缩进量，用于表示树的层级
     */
    public static void printDirectoryTree(File directory, int indent) {
        if (directory == null || !directory.exists()) {
            System.out.println("无效的目录路径");
            return;
        }

        if (directory.isDirectory()) {
            // 打印目录名
            for (int i = 0; i < indent; i++) {
                System.out.print("  ");
            }
            System.out.println(directory.getName());

            // 获取目录下的所有文件和子目录
            File[] files = directory.listFiles();
            if (files != null) {
                for (File file : files) {
                    // 递归遍历每个文件和子目录
                    printDirectoryTree(file, indent + 1);
                }
            }
        } else {
            // 打印文件名
            for (int i = 0; i < indent; i++) {
                System.out.print("  ");
            }
            System.out.println(directory.getName());
        }
    }

    public static void main(String[] args) {
        // 指定要读取的目录路径
        String directoryPath = "path/to/your/directory"; // 替换为实际的目录路径

        // 创建 File 对象
        File directory = new File(directoryPath);

        // 调用递归方法打印目录树
        printDirectoryTree(directory, 0);
    }
}
